开发环境:
IDE:RT-Thread Studio 2.1.5、ENV
开发板:NUC980 IoT
1.1 NUC980 IoT开发板简介
NUC980 IoT开发板是新塘推出的基于 ARM926EJ-S,集成 128 MB DDR-II 的处理器,主频可以达到300MHZ,有 64-pin、128-pin 和 216-pin LQFP 封装,主要应用为工业自动化控制、工业物联网闸道器 ( Gateway ) 、网路印表机设备、电表集中器、智能家居闸道。
NUC980 IoT开发板资源丰富。
32-bit ARM926EJ-STM NUC980DK61Y 微处理器核心
内建 64 MB DDR内存,
工作频率最高可达 300 MHz
1 Gbit SPI-NAND Flash
10 / 100 以太网络 x 1,
USB 2.0 高速主机 x 1
USB 2.0 高速主机 / 装置 x 1
单声道麦克风输入
立体声耳机输出
MicroSD 卡槽
USB Power and CDC Debug Port
外部内存扩充接口
Arduino 兼容接口
UART x 3
1.2 NUC980 IoT移植RT-Thread
RT-Thread中已经做好了nk-980iot的BSP,因此这里直接用就可以了。
关于RT-Thread的开发环境搭建请参看笔者博客:
Keil+env开发
RT-Thread Studio开发
Ubuntu开发
1.2.1编译RT-Thread固件
首选从下载rt-thread源码。下载完 RT-Thread 后,首先进入目录 rt-thread\bsp\nuvoton\nk-980iot,然后右键打开 RT-Thread env,或者打开 RT-Thread env,然后进入目录 rt-thread\bsp\nuvoton\nk-980iot。
生成配置:
$ menuconfig –generate
当然啦,要想修改配置去掉‘generate’参数即可。
然后更新 rt-thread 包,并下载所使用软件包:
$ pkgs –update
然后执行 scons 指令进行编译:
$ scons
等待编译完成即可。
1.2.2烧写RT-Thread固件
板子上一共有2 个 micro usb 接口,一个是用于连接到 NUC980IoT USB,可以用于给 NUC980IoT下载固件,还有一个USB是连接到板子上的 USB 转 TTL,可以用于调试。在烧些RT-Thread固件前,先安装USB驱动。
双击Driver目录下的WinUSB4NuVCOM.exe即可安装。
接下来就很简单,笔者就不再赘述了。成功安装后提示信息如下。
这个时候插上USB,应该可以正常识别出一个设备。
NuWriter烧写软件和USB驱动一样,也在OpenNuvoton的NUC980_NuWriter仓库中。
在烧写之前,还需要了解NUC980 IoT启动模式。根据NUC980的手册说明和原理图,可以看到NUC980有四种启动模式。
在电路上设计了两个拨码开关用于选择和配置启动方式。
接下来就正式烧写固件了。
把NUC980 IoT设置为 USB 启动进入下载模式,然后分别把这两个 USB 口都连接到 PC,使用 Xshell打开对应 COM口,打开 NuWriter,选择 NUC980DR61YC。
连接成功后,会有板子的版本信息。
同时调试串口信息如下:
1.烧写固件到SDRAM
这里让 RT-Thread 在 NUC980IoT RAM上跑。选择下载类型为DDR/SRAM。然后选择前面编译的RT-Thread固件,设置Execute Address为0,然后点击‘Download’下载即可。
下载成功后就可以看到 RT-Thread 已经运行起来了。
同时板子上一个 LED 也闪烁起来了。
是不是很简单,赶紧去玩起来吧。
2.烧写固件到SPI NAND Flash
选择下载类型为SPI NAND,按下‘Re-Connect’,按下‘Erase’,然后选择‘Erase All’,最后按下‘OK’即可进行擦写操作。
等待片刻即可擦写完成。
接下来选择uboot-spl.bin,选择Image Type为Loader,输入 Image Execute Address地址为0x200,按下 Program 并等待结束。
接下来选择uboot.bin,选择Image Type为Data,输入Image start address地址为0x100000,按下 Program 并等待结束。
接下来选择rtthread.bin,选择Image Type为Data,输入Image start address地址为0x200000,按下 Program 并等待结束。
接下来选择env.txt,选择Image Type为Environment,输入Image start address地址为0x80000,按下 Program 并等待结束。
然后设定Power-on setting to SPI NAND booting。
接下来就可以查看RT-Thread是否运行。
正常下其现象和RAM是一样的。
3.烧写固件到SD
将SD卡插到板子上,点击‘Re-Connect’连接设备,如果识别到SD卡,会有以下信息。
然后打开NuWriter,点击‘Format’。
然后设置格式化大小。
点击‘Set’之后,然后点击‘OK’即可格式化。
格式化成功后,打印信息如下:
接下来选择uboot.bin,选择Image Type为Data,输入Image Execute address地址为0xe00000,按下 Program 并等待结束。
接下来选择rtthread.bin,选择Image Type为Data,输入Image start address地址为0x100000,按下 Program 并等待结束。
然后设定Power-on setting to SD booting。
接下来就可以查看RT-Thread是否运行。
正常下其现象和RAM是一样的。
值得注意的是,以上提到的文件在rt-thread/bsp/nuvoton/nk-980iot/uboot目录下。
本文使用的是ENV开发,当然也可使用RT-Thread Studio。
根据个人喜欢选择开发环境。
欢迎访问我的网站
BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎
欢迎订阅我的微信公众号
关注公众号[嵌入式实验楼]获取更多资源